home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr25 / mr2_151.zip / READ.ME < prev    next >
Text File  |  1993-06-20  |  43KB  |  930 lines

  1. MR/2 - A QWK Compatible Mail Reader for OS/2.  05/09/93
  2.  
  3. Copyright (c) 1992, Knight Writer Software Company.
  4. All rights reserved.
  5.  
  6. ===================================================================
  7.                           N O T I C E
  8. ===================================================================
  9. This IS a shareware package, and does require a registration fee if
  10. you choose to continue using it after 30 days.   The registration
  11. fee is currently $20 US.  Eventually, the product MAY have a
  12. "begging" screen with a key-file that will register the software
  13. and suppress it.  The more interest I get, the more likely I am to
  14. continue with improvements.
  15. ------------------------------------------------------------------
  16.  
  17. CONTACTING THE AUTHOR
  18. =====================
  19.  
  20. You  can contact me in a number  of ways.  Unfortunately, I can't
  21. provide a phone number at this time.
  22.  
  23. US Mail:       Nick Knight
  24.                1823 David Ave.
  25.                Parma, Ohio 44134
  26.  
  27. Fido netmail:  1:157/2 to "Nick Knight"
  28.  
  29. Internet:      User "Nick Knight", (nick.knight@pcohio.com)
  30.  
  31. Fido Echomail: Find the Fidonet OS2PRODSUPPORT conference.  I'm there.
  32.  
  33.                Echomail messages to  me in more general conferences are
  34.                discouraged, as keeping them "on  topic" and
  35.                interesting to the masses would be difficult.  I do
  36.                read OS2, OS2PROG, C_PLUSPLUS and DR DEBUG daily,
  37.                though.  OFFLINE echo also (deals with mail readers),
  38.                this might be THE place to ask public questions, eh?
  39.  
  40.                I recently have acquired access to a host of other
  41.                networks with OS/2 conferences.  These include RIME,
  42.                SmartNet, Uninet, Intelec, Nanonet, Racenet and some
  43.                others I can't remember.
  44.  
  45.                I also do poll the Fidnet OS2PRODSUPPORT echo.
  46.  
  47. Direct BBS:    Leave a message on the Nerd's Nook BBS (1:157/2) at (216)
  48.                356-1772, 356-1872 or 356-1431.  I check in here
  49.                multiple times a day.  I will also keep the most recent
  50.                copy of MR/2 posted here.  Other boards (non-local)
  51.                will get updates at my convenience.
  52.  
  53. **************************************************************************
  54. **************************************************************************
  55. **             NOTE:  Nerd's now supports an MR/2 conference            **
  56. **             and file area.  Conference #208 is dedicated to          **
  57. **             MR/2 support and files.  File area #45 contains          **
  58. **             MR/2-related files.  Any file uploaded into              **
  59. **             conference 208 will be placed in file area 45.           **
  60. **************************************************************************
  61. **************************************************************************
  62.  
  63.                Nerd's does support file requests (157/2 or 157/3)
  64.  
  65. Compuserve:    I check in here only when I have to.  Try mail to my
  66.                user ID  - 76066,1240, although this isn't the best
  67.                approach.
  68.  
  69.  
  70. Changes included in v1.51
  71. -------------------------
  72.  
  73. o   RIME routed messages are now recognized as having a "header area" at
  74.     the top of the message.  If the message is "split" due to length,
  75.     the header area should be automically pasted into the top
  76.     of each part.
  77.  
  78. o   FILE_ID.DIZ files were crossed between classic and PM.  Fixed.
  79.  
  80. o   After a brief "vacation" <NOT!>, work is once again progressing :)
  81.  
  82. o   OK, I linked in HPFS longname support and modified some code to
  83.     retrieve and handle long file names.  The packet select screen
  84.     now shows TE/2-renamed files like "pc-ohio.qwk;1".  This will need
  85.     some testing and polish, but it works.  FileSpec in MR2.INI should
  86.     be changed to "*.q*" in order to see these files.
  87.  
  88. o   Ooops.  I couldn't find a PKUnzip that would work with long names.
  89.     Even the older OS/2 version puked.  This'll definitely be a problem
  90.     with other DOS based archivers.  So, I added a little diddy to
  91.     unqwk.cmd that, if a long name is detected, will copy the selected
  92.     file into the tmp$$ directory as MR2$TMP.QWK and unpack this.  It
  93.     then deletes the "temporary" QWK packet.  Works great with even
  94.     the DOS PKUnzip now!
  95.  
  96.     If you want to use TE/2 on a HPFS system and unpack the "BBS.QWK;1"
  97.     type names with a DOS or PK* product, you *must* set your unzipper
  98.     to unqwk.cmd.
  99.  
  100. o   Selecting an alternate conference using F4 from the Message Header
  101.     Edit screen was broken.  This has been fixed.
  102.  
  103. o   Packet path would get reset after every packet.  That meant that if
  104.     you used ALT-P to change to a different directory and opened a packet,
  105.     you'd lose that path when that packet was exited.  Packet path and
  106.     Video mode now are kept across packets
  107.  
  108. o   An MR/2 INI file other than MR2.INI may be specified via command line
  109.     parameter.  Use "MR2 /IMR2_ALT.INI" to use a file named MR2_ALT.INI as
  110.     the global MR/2 INI file.  I'm hoping that this helps in allowing
  111.     multiple instances of MR/2 to be open on the desktop.  Needs more
  112.     testing and experimentation ...  Opening two different MR/2 seesion
  113.     still crashes.
  114.  
  115.  
  116. Changes included in v1.50
  117. -------------------------
  118.  
  119. o   Read.me is now shifted around so that most recent changes (from now
  120.     on, at least) list at the top.  The old mr2.hst file that used to
  121.     house the list of modifications up to v1.00 (beta changes) is gone.
  122.     Mr2.hst now contains a list of changes from v1.00 up to v1.40.
  123.     This read.me file contains changes made in v1.40 and beyond.
  124.  
  125. o   Welcome and Goodbye screen now list on the Bulletins select menu.
  126.     You can view these, unobstructed and at length, any time you choose.
  127.  
  128. o   Minor change to the parsing of the @Fidonet@ variable.  Removed any
  129.     @fidonet suffix that exists in the origin line.
  130.  
  131. o   Ooops.  When using the internal editor, and editing mr2.ini, the
  132.     read clock string would pop onto every edit screen.  The clock display
  133.     is now suspended/resumed correctly.
  134.  
  135. o   Clock would still pop up if you would request HELP while inside the
  136.     editor, then CANCEL to clear the help screen.  Fixed.
  137.  
  138. o   ALT-W now "works" when inside the internal editor.  It will write the
  139.     entire file currently being edited, to another file named by you.
  140.     This does not change the original file's name.  It will overwrite any
  141.     existing file ... I guess there's an enhancement idea right there :)
  142.  
  143.     NOTE: The internal editor works similarly to the E and EPM editors
  144.     as far as CR/LF's go.  If you type in a long reply letting the
  145.     editor do the wrapping, there are not necessarily CR/LF's at the end
  146.     of every line.  These occur only where they previously occur, or
  147.     when you force a "hard return" by pressing ENTER.  MR/2's reply
  148.     saving logic places hard returns into the replies.  This means that
  149.     files that are created by using ALT-W *may* appear to be one long
  150.     line (or at least one long line per user-typed paragraph) when
  151.     viewed with another editor, printed, or typed to the screen.  If you
  152.     want to ALT-W write a reply with correct CR/LF placement, save the
  153.     reply AND THEN go into the reply conference and re-edit it.  Once it
  154.     has been saved, CR/LF's will be placed properly.  Let's see if this
  155.     causes a problem for anyone.
  156.  
  157.  
  158. Changes included in v1.48x
  159. --------------------------
  160.  
  161. o   Add/Drop - you can add or drop a conference via "door" command now.
  162.     Simply highlight a conference on the Conferences w/mail or the Write
  163.     New selection list.  Press ALT-A to add, ALT-D to drop, and confirm
  164.     the action.  Adding/Dropping a non-BBS conference (MR/2 created, for
  165.     example) does nothing.
  166.  
  167. o   Internal Editor:  cursor would not be visible in with screen displays
  168.     of 40 lines or more.  I was drawing the cursor, just too thin!  Now,
  169.     the cursor setting routine queries # lines and adjusts.
  170.  
  171. o   Modified the "no packets exist" screen to report the option of
  172.     pressing ALT-E to enter message to a known BBS even though no packets
  173.     exist.  Formatted the text on this screen a little better.
  174.  
  175. o   Added code to trim off nulls at end of any message.  Was trimming spaces,
  176.     but Internet messages sometimes had nulls.  Messes up the reply file
  177.     editing.  Also, if any embedded nulls are found, these *aren't* written
  178.     to the reply file OR save file.
  179.  
  180. o   Processing for IDATE improved a little.  I saw some DATE: lines that
  181.     started with weekday names like "Sun, ".
  182.  
  183. o   New INI parameter - ReplyStripTagline defaulting to YES.  Set it to NO
  184.     if you want to use SmartQuoting (which strips the original messages
  185.     tagline) but still want the tag quoted.
  186.  
  187. o   QuoteStyle now has an optional parameter, which is ON by default.
  188.     If you specify TagStyle=PCBoard,Autosense, you're saying that quote
  189.     style can use hi-end ASCII chars, but if it's a Fidonet reply,
  190.     change to Fidonet mode.  I'm not sure if I should include Internet
  191.     messages as Fido-typed tags ... I probably should.  I'll research.
  192.     Without the "Autosense" keyword, tag style will adhere strictly to
  193.     what's been specified.
  194.  
  195. o   NOTE: starting with the next release, this file will begin to list the
  196.     latest changes at the TOP of the file, with older revisions towards
  197.     the bottom.
  198.  
  199.  
  200. Changes included in v1.47x
  201. --------------------------
  202.  
  203. o   Added new Template file sections: SaveHeader and PrintHeader.  Lets
  204.     you define the header for messages when printed or saved.  If these
  205.     sections don't exist, the old default header is used.
  206.  
  207. o   Added more variables to aid in the support of the new header sections:
  208.     MsgRefNbr, MsgNumber, MsgStatus.  In addition, added some more variables
  209.     to aid in formatting sections.  @COL:45@ sets the next column to 45.
  210.     @RCOL:72@ says to right justify the next variable referenced at col 72.
  211.     @Center:40@ says to center the next variable referenced over column 40.
  212.     The @RCOL@ and @CENTER@ variables can be used w/o column specs to
  213.     right justify at "wrap column" or center the entire line between wrap
  214.     column and 1.
  215.  
  216.     Negative @COL@ specs may be supplied.  This will delete the specified
  217.     number of characters before the variable.  For example, @ITIME@@COL:-4@
  218.     would change 07:54:30 GMT to just 07:54:30.  Messes up, tho, if MSGDATE
  219.     ends up getting substituted for IDATE (no IDATE is found).
  220.  
  221.     See example.tf, at the end.  There's a section `unused` with some
  222.     doc/examples.
  223.  
  224. o   The template file now supports comment lines.  Simply start the line
  225.     (very first columns) with ";;" and the line is ignored.
  226.  
  227. o   Save message - if your "default" file in the INI has a "*" or a"?"
  228.     in the name, MR/2 shows the file selection list immediately upon
  229.     hitting the "S" to save.
  230.  
  231. o   MR/2 now will highlight all occurences of a search string within a
  232.     "hit" message.  This includes custom conferences, and soundex hits.
  233.     Soundex highlights may appear longer or shorter than the actual hit.
  234.     Since the length of these matches is variable, a "best-guess" is made.
  235.     Header area hits are highlighted also.  A multiple part search string
  236.     will cause ALL strings that have matched to be highlighted.  Color
  237.     defaults to yellow background, black letters, but ...
  238.  
  239. o   I added yet another 2-byte color combination to the end of my "archaic"
  240.     (as it's been referred to :) color specification.  Modify your INI
  241.     color line (example given):
  242.  
  243.         Colors=1E171E??
  244.  
  245.     replace the ?? with the two-digit color code for the HIGHLIGHT color to
  246.     use when displaying search result "hits".  The default, black on yellow,
  247.     would be specified as E0.
  248.  
  249.     If you don't like new the highlighted text, just define the highlight
  250.     color to be the same as normal text.  This will still show differently
  251.     in the header and quoted text sections ... let me know.
  252.  
  253. o   INTERNAL:  had to modify csoundex to return hit pointer.
  254.     check_for_string() now returns a point to a hit, and sets a global
  255.     length variable, __cfs_match_lgth.  ViewBuffer now has code to search
  256.     for match string(s) and hilite any/all found.
  257.     INI.cpp:  added another parse for new color possibility.
  258.  
  259. o   While viewing any message, you can press "~" to rewrap it.  This is
  260.     useful only in USENET (Internet) conferences where sometimes a message
  261.     gets posted without linefeeds.  MR/2 would display it on a single line,
  262.     but only give you access to the first 160 characters.  This rewrapping
  263.     is quite temporary (if you "go back" later to view the same message,
  264.     you'll have to rewrap it again), and totally manual; performed by user
  265.     keypress only.  I may INI-ize an automated/detection scheme later.
  266.  
  267. o   GetMessageLine:  added a new parameter, maxline_length.  This defaults
  268.     to 32000, but may be overridden.  Problem was with long usenet message
  269.     (no linefeeds), stacked string variable were getting overflowed.  This
  270.     becase apparent when searching for varibale values ... may exist in
  271.     other places.
  272.  
  273. o   Specified maxline_length on all calls to GetMessageLine() found in
  274.     MR2.cpp and MR2Util.cpp.
  275.  
  276. o   Added a bunch of code to better detect message display lines that are
  277.     "quotes" from previous messages.  This is not configurable at this time.
  278.     If I did too much, yell and I'll make this optional.  With all the
  279.     messages I looked at, quoting highlights were right 99% of the time.
  280.  
  281. o   New QuoteBody option - Paragraph.  If you specify something like:
  282.  
  283.         QuoteBody="%i│▌",Paragraph
  284.  
  285.     then you'll get a quotes like:
  286.  
  287.         MN│▌Yes-  DOS 6 upgrade is... (lines chopped for brevity)
  288.           │▌number of files that...
  289.  
  290.         MN│▌And then after your DOS...
  291.           │▌the manual of files you...
  292.           │▌release the whole thing...
  293.  
  294.        you can do the same thing with "%i>", and secondary lines
  295.        get just " >".  Use the "|" (shifted backslash) and Fidonet
  296.        sysops may not yell at you :)  (it's not hi-end ASCII).
  297.  
  298.     Bummer!  I just saw someone (a registered MR/2 user using a DOS
  299.     package, hmmmph!) quote with a technique that this doesn't yet
  300.     handle :(.  Just a minor nit, maybe I'll add something later to do
  301.     this (YOU CAN'T DO THIS WITH MR/2):
  302.  
  303.         MN┤Yes-  DOS 6 upgrade is... (lines chopped for brevity)
  304.           │number of files that...
  305.  
  306. o   Prewrapping still screws up.  I'll look at this tomorrow. :(
  307.     HA!  I had a problem where I saw too many lines as being "quoted".
  308.     Fixed this and text is flowing much nicer.  Time will tell.
  309.  
  310. o   Editor:  Hi-end ASCII (>127) is now available via the ALT-nnn (numeric
  311.     keypad entry).  Hi end characters that used to display with different
  312.     attributes now display correctly (normal text color).
  313.  
  314. o   Forms: ALT-nnn combinations can now be used to enter characters into
  315.     forms.  The Header Editing form will now accept these characters.
  316.     Still a problem ... display rountines aren't showing them ...
  317.     OK, fixed displays.  It was a trimming problem, hi-end ASCII getting
  318.     trimmed off the end as, when seen as signed chars, they're actually
  319.     LESS THAN a ' ' and would get trimmed.
  320.  
  321. o   Oops, old quote detect now also uses new "extended" quoted line
  322.     detection logic.
  323.  
  324.  
  325. Changes included in v1.46x
  326. --------------------------
  327. Beta bug fixes...
  328.  
  329. o   Trying to declare SmartWrapping or SmartQuoting in the INI file
  330.     resulted in a crash.  I messed up by referencing an uninitialized
  331.     pointer.  Sorry ... fixed now.
  332.  
  333. o   Modified the logic to pick out the quoting initials to better parse
  334.     Internet "from" fields.  Still needs some other strange-character
  335.     detection added (nick.knight@pc-ohio should reduce to nk>).
  336.  
  337. o   Fixed a bug where internet from fields that were filled to 25 characters
  338.     resulted in your own last initial being inserted as the senders second
  339.     initial (Michael.Hagerty@nitelog.com to Nick Knight, reply would
  340.     be quoted MK>)  This *was* fixed in v1.45 but not documented.
  341.  
  342. o   So my wrapping logic needs a little work :)  I added some things.
  343.     First SmartWrapping and SmartQuoting have three levels: No, Yes and
  344.     Full.  Full is aggressive, rewrapping all non-quoted text to the
  345.     defined wrap column (This is the old "YES").  If set to Yes (the
  346.     "new" option), wrapping occurs ONLY after a line feed has been
  347.     inserted by MR/2 (an overlength line was detected). The defaults are
  348.     "YES" ... we'll see if this works any better.  Limited testing, but
  349.     you *can* now shut these off w/o crashing!
  350.  
  351. o   Also, add an "~" to the end of any line (before the linefeed) and
  352.     MR/2 will strip out the "~" and keep the return that follows intact.
  353.     This is for stubborn wrapping problems.  Just in case :)
  354.  
  355.  
  356. Changes included in v1.45x
  357. --------------------------
  358. Another limitted release beta ...
  359.  
  360. o   INTERNAL: get_origin into mr2util.cpp from qwksrch.cpp.  Previously
  361.     it was considered part of the searching logic but now has more
  362.     applications.
  363.  
  364. o   If the quoting initials ended up longer than 9 characters (FROM name
  365.     had no spaces), the string was not properly terminated.  This resulted
  366.     in garbage in the initials and in one reported case, a crash.  This
  367.     would occur most often in internet conferences.
  368.  
  369. o   New module: Wrap.cpp - WrapMessageText() called from MakeReply()
  370.     and SaveReply().
  371.  
  372. o   New function in mr2util.cpp: fQuoteLine().  This used to be a simple
  373.     macro used in a single place.  It was needed in another chunk of
  374.     code so I made it a function.  This also allows for extensions, as
  375.     all MR/2 currently recognizes is a '>' in any of columns 1 through
  376.     5.  If one's there, I call it a quote line.
  377.  
  378. o   New INI variable:  SmartQuoting, defaulting to "YES" but may be
  379.     manually set to NO via INI settings.  SmartQuoting will "prewrap"
  380.     the reply file that MR/2 generates, compensating for the user
  381.     initial prefix string.  In other words, when you first see the
  382.     reply, the original sender's text will be rewrapped and quoted so
  383.     as to fit inside the WrapLinesAtColumn defined in MR2.INI.
  384.  
  385.     NOTE: that existing quoted lines ARE NOT REWRAPPED.
  386.  
  387.     ALSO NOTE: SmartQuoting will *not* quote past the first tearline.
  388.     If this creates an incovenience, please let me know.
  389.  
  390. o   New INI variable:  SmartWrapping, defaulting to "YES" but may be
  391.     manually set to NO via INI settings.  SmartWrapping will change
  392.     the logic used by MR/2 when the edited reply file is saved.
  393.     If set to NO, the old wrapping method is used.  When left on,
  394.     MR/2 will format your NEW text with some intellegence.  There is
  395.     logic to differentiate between a "hard" and "soft" return, and
  396.     soft returns will be removed if necessary.
  397.  
  398.     The old technique would simply insert hard returns to make the line
  399.     fit within the declared wrap column.  The remaining section of the
  400.     original line would often be short (one or two words) and look out
  401.     of place, stranded on a line by itself.  The new technique attempts
  402.     to rewrap the text as a whole and eliminate some of the older
  403.     method's ugly results.
  404.  
  405.     NOTE: Quoted lines ARE NOT REWRAPPED, these are always considered
  406.     to be prefixed and terminated by hard returns.
  407.  
  408. o   New template sections are definable:  NewInternet and NewNetmail
  409.     for creating new messages in these private-mail conferences.
  410.  
  411. o   The NewMessage template section was never actually used ... the
  412.     "default" direct section was always being used for new messages.
  413.     Fixed.
  414.  
  415. o   When editing a message header and the conference is the Internet or
  416.     Netmail defined conference, the "private" flag is set to YES.
  417.  
  418. o   INTERNAL:  SetSection() moved into mr2util.cpp.
  419.  
  420. o   INTERNAL:  AppendFile() - replaced fpreamble with multivalued
  421.     "subsection" parameter.
  422.  
  423. o   New template section: `RIME` can be defined for use when replying
  424.     to a message in private mode.  If a reply is private, and the
  425.     source message is determined to be from a RIME source (Postlink
  426.     origin is last line of message), then this section is used in
  427.     generating the reply.  This allows for private, routed mail.
  428.     Not sure what to do about "new" private, routed messages.
  429.  
  430. o   New variables:  @RimeIDCode@ and @RimeSiteNo@ for use in the RIME
  431.     section for "routing" private messages.  Will result in blanks unless
  432.     replying to a message with a Postlink origin line.
  433.  
  434. o   New Variables:
  435.  
  436.         @RimeIDCode@ and @RimeSiteNo@, defined above.
  437.  
  438.         @Version@ for the MR/2 version.
  439.  
  440.         @SerialNumber@ is replaced by the registered serial number
  441.                 (empty if not registered).
  442.  
  443.         @UserName@ is replaced by your user names as found in the QWK
  444.                 control.dat structure.
  445.  
  446.         @IDate@ is replaced with the Internet "Date:" spec, or the
  447.                 the same results as @MDATE@ if a date string is not
  448.                 found.
  449.  
  450. o   New template section: `Forward`.  If this section is declared, it is
  451.     used as the template "prefix" for forwarded messages.  NOTE:  $Body is
  452.     not required, this section is inserted as a whole.  If not declared,
  453.     the old MR/2 default forward prefix is used.
  454.  
  455. o   See EXAMPLE.TF for examples of all new section capabilities.  My name
  456.     and email addresses are plastered all through here.  You'll want to,
  457.     of course, change these to your own :)
  458.  
  459. o   ** DO NOT USE THE ALT-W feature inside the internal editor. **
  460.     ALT-R seems to work ok (Read or "insert" file).
  461.  
  462.  
  463. Changes included in v1.44x
  464. --------------------------
  465.  
  466. o   When replying into the Internet mail conference, the @INTERNET@
  467.     variable will better represent a true Internet address.  If the
  468.     Reply-To: line isn't present, MR/2 then looks for a "From:" line and
  469.     attempts to parse out an address.  If no From: line is detected,
  470.     MR/2 now looks to the last line of the message.  If the sender has
  471.     included his address inside of parenthesis, then this is used as the
  472.     INTERNET value.
  473.  
  474. o   Added ALT-R and ALT-W support to the internal editor.  ALT-R prompts
  475.     for a file name, then reads that file into the current cursor
  476.     position.  ALT-W prompts for a file name and writes the entire edit
  477.     buffer to that file (overwritting).  I'm not happy this code ... and
  478.     it doesn't seem to work that well.  I also noticed that the editor
  479.     doesn't save files in full text mode (no CR's).
  480.  
  481. o   Modified msg2rep.cmd so that if archiver.id file isn't found, it
  482.     defaults to pkzip (configurable).  If using no packet entry, no
  483.     unarchiver was called, so no archiver.id is created.  We need to
  484.     be able to specify a packet as a default.
  485.  
  486. o   If a local INI specified a value for Internet and/or Netmail, it
  487.     was not cleared when the packet was exitted.  If the next packet
  488.     opened did not reset these values (or did not have a local INI), then
  489.     some erroneous detection of network mail would result.  Fixed.
  490.  
  491. o   The internal editor now saves and ALT-W writes files in TEXT mode.
  492.     I had to do cr/lf translations myself :(.  Writing is OK now, although
  493.     I'm still hoping to recognize and write only a block, if something is
  494.     highlighted/marked.  Reading/importing a text file also works OK, but
  495.     since I'm tricking the editor by inserting the file into the internal
  496.     editor keyboard buffer, it runs more slowly than it should.  Plenty of
  497.     room for improvement here :)
  498.  
  499.     THIS IS BUGGY AND MAY GET YANKED !!!!
  500.  
  501. o   I modified the "origin" line finding logic to recognize more common
  502.     reader/network tearline styles.  For instance, MR/2's own TwoLine
  503.     style tagline is now recognized as the beginning of the origin section
  504.     (and end of the BODY section).
  505.  
  506. o   INTERNAL:  QwkSrch.cpp - modified fopen() call to open custom conference
  507.     NDX file.  It now prepends the BaseDir and WorkPath.  MR2PM, under some
  508.     interesting circumstances,  would write these files to the wrong
  509.     directory.  MR/2 classic probably could have, too.
  510.  
  511. o   Qwksrch.cpp - James Schmidt found a couple of problems.
  512.     If you set the CHECK= parameter for a custom conference to TO, FROM
  513.     and/or SUBJECT, and the source message used mixed case text, a match
  514.     would never be found.  Fixed.  Also, if a message had no detectable
  515.     origin line, for some strange reason I called the whole message part
  516.     of the origin/tagline area (and it had no "body" section).  This is now
  517.     reversed - a message with no tearline is all "body" and has no origin
  518.     section.
  519.  
  520.  
  521. Changes included in v1.43x
  522. --------------------------
  523.  
  524. FOLKS:  Same as before ... 1.42 was kept *very* internal.  This version
  525. is still beta stuff.
  526.  
  527. o   Started coding of a REXX script to handle detection of the archiver
  528.     used to pack the mail packet.  A code is returned that will be used to
  529.     branch to the correct command for unpacking.  To me, this is the ideal
  530.     solution, as it is forever extensible.  I've got a scheme for a packer
  531.     script (for replies) that will match the unpacker used.  I'm new to
  532.     REXX coding (this was the perfect excuse to get my feet wet :), so
  533.     if anyone wants to make improvements and/or enhancements, I'll welcome
  534.     them.  (file is named Unqwk.cmd)
  535.  
  536. o   Create msg2rep.cmd - a REXX script for packing replies into a .rep
  537.     file based on the method used to unpack the original packet.  The source
  538.     packet *must* have been unpacked with unqwk.cmd (or, at least, the file
  539.     "archiver.id" must exist and identify the correct packer to use).  This
  540.     script opens up "archiver.id" and extracts the id number.  Based on that
  541.     number, a branch is made to the correct packet command.
  542.  
  543.     NOTE:  You may have to modify these files a tad IF your archivers
  544.     are not in your "PATH" environment variable.
  545.  
  546.     NOTE:  These command are useful if you use multiple packet sources
  547.     (BBS's) that use different compression techniques.  If you can get
  548.     by with a single zipper/unzipper command, the "old" way is OK, and
  549.     in fact, still more efficient.  These new files simply provide
  550.     additional flexibility for those that frequent a variety of BBS's and
  551.     need this functionality.
  552.  
  553.     INSTALLATION:  Modify your MR2.INI file to declare:
  554.  
  555.         Zipper=..\msg2rep
  556.         Unzipper=..\unqwk
  557.  
  558.     the default .cmd files depend on all archivers being in your "path".
  559.     If not, you may modify the path = '' statement at the top of each
  560.     file to reflect the correct path, or modify each zipper command
  561.     separately to reflect each's valid path.
  562.  
  563. o   INTERNAL: packet_exists() now returns TRUE+1 if a .msg file is found
  564.     in the work directory.
  565.  
  566. o   INTERNAL: packet_exists() and remove_packet_exists now use the file
  567.     name "control.dat" when checking (and removing) packet exist status.
  568.     If you left a no-packet entry session with ALT-X, then tried to go back
  569.     in later, MR/2 would not see the existing work (since no messages.dat
  570.     file ever existed).  Control.dat will always exist if a "packet" is
  571.     open.
  572.  
  573. o   The prompt "Work area has an open packet" has been enhanced.  You may
  574.     still see this prompt.  However, if the work directory is found to
  575.     contain replies, the prompt will read "Open packet with REPLIES found".
  576.  
  577. o   If an error occurs when unpacking the packet, you will now remain
  578.     inside MR/2 to select a new packet, or whatever.
  579.  
  580. o   IF an error occurs while packing replies, the work directory is *not*
  581.     purged.  Previously, any error while spawning the packer still let the
  582.     files be deleted.  What happens now is, after the command error is
  583.     reported, you're prompted that an open packet with replies exists.  The
  584.     correct course of action is to go back in the packet (continue working
  585.     with the open packet) fast exit with ALT-X and correct the zipper
  586.     problem.
  587.  
  588. o   Cleaned up and tested UNQWK.CMD and MSG2REP.CMD.  Made sure error codes
  589.     were properly returned to MR/2.  Seems to work well with the new error
  590.     handling described above.
  591.  
  592. o   Added new variable @ISUBJECT@ that resolves to the Internet message
  593.     subject line (often different than the QWK "subject" field).
  594.     I hope there's a limit to the size of these things ... I only
  595.     accomodate "realistic" lengths.  We'll see.
  596.  
  597. o   Ooops.  New template section logic didn't accomodate new messages
  598.     created w/o replying.  The template file can now define a section for
  599.     `NewMessage`.
  600.  
  601. o   There was a problem with clearing of search results if there was no
  602.     local INI when a packet was closed.  Previously, hit counters for custom
  603.     conferences would not represent the correct counts (counts would not
  604.     be cleared for the next packet).  Now, all data is cleared (MR2.INI is
  605.     always reloaded after a packet is closed).
  606.  
  607. o   The INI parameter SplitLongMessages has been enhanced.  YES/NO still
  608.     function in the old way; YES will cause messages to be split at 92
  609.     lines (90 lines of message, 2 lines for the <cont..d> footer).  You
  610.     can now, however, place a number here as an option.  This sets
  611.     splitting to YES, but modifies the line count cutoff to be the specified
  612.     value (instead of 92).  This value *must* be greater than or equal
  613.     to 10 (I've been told of a BBS system that requires no more than 16
  614.     lines <really!>, so I figure 10 will be a "safe" minimum).  I would
  615.     suggest using a reasonable number if you need to change the default
  616.     at all.
  617.  
  618.  
  619. Changes included in v1.42x
  620. --------------------------
  621.  
  622. FOLKS!!!:  This is truely a beta ... please save your old working
  623. MR/2 version before trying this release.  I changed alot of code, and while
  624. eveything appears to be OK so far ... well, we all know better than to
  625. get too relaxed, eh? :)
  626.  
  627.  
  628. o   New INI parameters V0 through V9 allow you to set user-defined text
  629.     strings as template variables.  Uses of the strings @V0@ through @V9@
  630.     in the tenplate file will be replced with the corresponding defined
  631.     text string.
  632.  
  633.     These variables can contain any other variables, including other "V"
  634.     variables.  This allows for a template to be defined with an
  635.     attribution line of @V0@, for example, and this line can be changed
  636.     for each BBS by defining different values to V0 in the BBSs local
  637.     INI file.  The variable replacement is recursive, so any number of
  638.     replacemnet levels is possible.  It's also possible to confuse the
  639.     system by circularly defining variables.  My rule:  keep it where
  640.     it's understandable.
  641.  
  642.     For example, if you add a line to MR2.INI that says "V0=1:157/200"
  643.     and your template file starts "...writing from Fidonet address @V0@",
  644.     the fidonet node address will be placed in the reply.
  645.  
  646. o   New INI parameters "INTERNET" and "NETMAIL".  Use these variables to
  647.     declare which conferences, if any, handle Internet mail and Fidonet
  648.     netmail, respectively.  For example, PC-Ohio has Internet mail in
  649.     conference 5 and Fidonet netmail in conference 6.  My PC-OHIO.INI
  650.     file has:
  651.  
  652.     Internet=5
  653.     Netmail=6
  654.  
  655.     Nerd' Nook has Netmail in conference in 139 and no Internet capabilities.
  656.     My NerdNook.INI file has the lines:
  657.  
  658.     Internet=-1
  659.     Netmail=139
  660.  
  661.     The "-1" tells MR/2 that there is no Internet support, and makes sure
  662.     that the Internet section template is not referenced.
  663.  
  664. o   New variables @INTERNET@ and @FIDONET@.  The INTERNET variable will
  665.     be replaced with the "Reply-to:" address found in Internet mail.  The
  666.     target address will be stripped of extra verbage and should represent
  667.     a correct and "ready-to-go" internet address.  The FIDONET variable
  668.     will be replaced with the full Fidonet address found in the origin
  669.     line of the current message.  If either one of these variable can
  670.     not be resolved, then an empty string is substituted.
  671.  
  672.     These variables are meant to be used for personal mail addressing
  673.     using template "sections".  See next blurb.
  674.  
  675. o   Sections in the template file `Internet` and `Netmail`.  You may now
  676.     allocate "sections" within the template file.  Sections are denoted
  677.     and named by a string between "accent" characters (`).  The first
  678.     template file section has no name and will be refered to as the
  679.     "default" section.  A section ends at the next section name string,
  680.     or at the end of the file.
  681.  
  682.     When replying to messages targetted for a conference declared to
  683.     be the INTERNET or NETMAIL conferences, MR/2 will switch template
  684.     sections to the corresponding section.  If ever a section is not found
  685.     (by name matching), the default section is used.
  686.  
  687.     This allows for Fidonet netmail and Internet mail to have templates
  688.     that correctly set up destination addressing.  See the file Example.tf
  689.     for examples of sections.
  690.  
  691. o   Mods to reply creation ... removed the beginning CR/LF when creating
  692.     the reply file.  Made changes to the way the template file handled
  693.     CR/LF spacing.  Template file's allignment matches reply files
  694.     better now (line spacing/blank lines).
  695.  
  696. o   When replying and the FROM user name is an Internet made-up name with
  697.     periods imbedded, MR/2 nulls-out the quoting initials.  The quoted text
  698.     is simply marked with whatever symbol is defined in the INI, usually
  699.     a ">" (no initials preceed the ">").
  700.  
  701. o   Oh boy.  I modified the Save Reply logic of my QWK class.  This is
  702.     dangerous, simply because it changes the way replies are saved.  I'll
  703.     test it thoroughly before letting it out.  *Please* report any problems
  704.     to me quickly.
  705.  
  706.     The change comes when splitting messages (it may effect more, my hope
  707.     is that it doesn't :).  IF you're in sending Internet mail or Netmail,
  708.     the message "header" will be copied to each split section.  In most
  709.     cases, this will be the correct function.  There may be cases where
  710.     it isn't.  Yell at me and I'll make it configurable.  In other words,
  711.     netmail or internet mail that's split will be addressed properly for
  712.     all "parts" if addressing is done on the first line(s) of the message.
  713.  
  714. o   When replying into the Fidonet netmail conference, the source message
  715.     is first checked to see if the first line starts "From:".  If so, and
  716.     what follows appears to be a Fidonet node designation (it has a ":" and
  717.     a "/"), then this is used as the value of the FIDONET variable.
  718.     If not found, the origin line is found.  In netmail messages (the ones
  719.     I receive at least), there is no origin line, just a "From:" identifier
  720.     on the very first line of the message.
  721.  
  722.  
  723. Changes included in v1.41x
  724. --------------------------
  725.  
  726. o   Template file processor would lockup if the named template file did
  727.     not exist.  Same ZTC bug where fopen() doesn't return NULL on error.
  728.     Fixed with a call to my file_size() function.
  729.  
  730. o   Taglines now are filtered for variables (e.g., @FROM@).
  731.  
  732. o   Took template file checking one step further - if file name is
  733.     empty, processing doesn't even start.
  734.  
  735. o   Distribution packets now contain a FILE_ID.DIZ file to help automate
  736.     BBS description entry.
  737.  
  738. o   The initial MR2.INI file now specifies that the INTERNAL editor now
  739.     be used as the default.  The initial INI editing is still performed
  740.     inside the E editor.
  741.  
  742.  
  743. Changes included in v1.40x
  744. --------------------------
  745.  
  746. Not much feedback on the internal editor yet.  I used it for a while but
  747. switched back to QEdit.  I need file import/export capabilities myself; I'll
  748. be adding that to the internal editor soon.
  749.  
  750. o   Save file wildcarding logic fix.  First, if you entered a spec like
  751.     "c:\tmp\*" and pressed ENTER, MR/2 would save the message to that file
  752.     name, which is illegal.  No error would be reported.  Now, when ENTER
  753.     is pressed and a wildcard is in the file name specified, MR/2 converts
  754.     the ENTER into an F2 keypress and shows a file pick list.
  755.  
  756. o   If "C:\tmp\*" was provided as the save file pick list, and a file was
  757.     selected from the list, the file name returned would be grunged.  The
  758.     file name field would be filled with some mutation of the subject line
  759.     from the message display.  This was due to the missing ".", which I
  760.     assumed would always be there.  This has been corrected.
  761.  
  762. o   New INI parameter:  "TemplateFile".  This is another one of those
  763.     features that is merely a starting place and has lots of future
  764.     expansion possibilities.  Place a file name here that defines a
  765.     template for all message replies.  The reply will created using this
  766.     file as a guide BEFORE you edit it.  This allows for any necessary
  767.     cleanup.  The "template" file I used for testing looked like this
  768.     (note that the variables used will be documented below):
  769.  
  770.     -------------------------------------------------------------------
  771.     Subject: @Subject@
  772.     In a message dated @DATE@, @FROM@ said to @TO@:
  773.  
  774.  
  775.     $BODY
  776.  
  777.  
  778.     Nick Knight
  779.  
  780.     From @from@ reading @CONFNAME@ (@CONFNUM@) on @BBSID@, to @TO@
  781.     Subject: @Subject@
  782.  
  783.     FidoNet:    1:157/2
  784.     Internet:   nick.knight@pcohio.com
  785.     Compuserve: 76066,1240
  786.  
  787.     To First:   @tofirst@
  788.     To Last:    @tolast@
  789.     YYMMDD:     @yymmdd@
  790.     Date:       @date@
  791.     From First: @fromfirst@
  792.     From Last:  @FromLast@
  793.     Msg Date:   @msgdate@
  794.     Msg Time:   @msgtime@
  795.     Day:        @Day@
  796.     Julian:     @Julian@
  797.     Time:       @Time@
  798.     Time 24:    @Time24@
  799.     AM/PM:      @AmPm@
  800.  
  801.     Upper:      @Upper@@Subject@ @upper@@day@
  802.     Lower:      @lOWER@@Subject@ @lower@@day@
  803.     Mixed:      @mix@@From@ -> @mix@@to@
  804.     -------------------------------------------------------------------
  805.  
  806.     The quoted version of the original message is inserted at the $BODY
  807.     marker, which is required.  NOTE that this is not an appropriate
  808.     template file for use within internationally echoed conferences.
  809.     It's offered here merely as an example.
  810.  
  811.     The section before the $BODY line allows for an "attribution"
  812.     line or section.  The area below the $BODY marker works as a
  813.     signoff or signature section.
  814.  
  815.     AGAIN, this feature is under development and may be changed in the
  816.     next couple of versions.  My idea is to add more blocks to this file.
  817.     For example, a definition for saved message headers, forwarded
  818.     header definition, etc.,.  I've got plenty of ideas.
  819.  
  820.     The reply file generated by my test template file looked like:
  821.     -----------------------------------------------------------------
  822.  
  823.     Subject: NEW ZOO
  824.     In a message dated 03/06/93, DAN HANSON said to ALL:
  825.  
  826.     DH>I saw this in Time Magazine.  The New York Bronx Zoo has been
  827.     DH>renamed to the International Wildlife Conservation Park.  In
  828.  
  829.     <My reply would be inserted here.>
  830.  
  831.     Nick Knight
  832.  
  833.     From DAN HANSON reading Main Board (0) on PC-OHIO, to ALL
  834.     Subject: NEW ZOO
  835.  
  836.     FidoNet:    1:157/2
  837.     Internet:   nick.knight@pcohio.com
  838.     Compuserve: 76066,1240
  839.  
  840.     To First:   ALL
  841.     To Last:    ALL
  842.     YYMMDD:     930306
  843.     Date:       03/06/93
  844.     From First: DAN
  845.     From Last:  HANSON
  846.     Msg Date:   03-06-93
  847.     Msg Time:   14:21
  848.     Day:        Saturday
  849.     Julian:     065
  850.     Time:       03:08
  851.     Time 24:    15:08
  852.     AM/PM:      PM
  853.  
  854.     Upper:      NEW ZOO SATURDAY
  855.     Lower:      new zoo saturday
  856.     Mixed:      Dan Hanson -> All
  857.     -----------------------------------------------------------------
  858.  
  859. o   Variables are available for use in the template file.  They are
  860.     currently only used by the reply file generator.  I'll add the
  861.     capability to other areas as I think of them.
  862.  
  863.     The following variables have been provided:
  864.  
  865.         BBSID                           TIME
  866.         CONFNAME                        TIME24
  867.         CONFNUM                         TO
  868.         DATE                            TOFIRST
  869.         DAY                             TOLAST
  870.         FROM                            YYMMDD
  871.         FROMFIRST                       UPPER
  872.         FROMLAST                        LOWER
  873.         MSGDATE                         MIX
  874.         MSGTIME                         AMPM
  875.         SUBJECT                         JULIAN
  876.  
  877.  
  878.     The literals UPPER, LOWER and MIX are not actual variables, but
  879.     modifiers.  They will convert the case of the NEXT variable
  880.     replacement to either all upper, all lower or mixed case, respectively.
  881.     Mixed case basically lower cases all letters except the first letter
  882.     of each word.  See the example above for more detail.
  883.  
  884. o   GREATER CHICAGO Online BBS is now offering a service called the
  885.     "OS/2 Shareware Author Support Program".  They are willing to handle
  886.     Visa/Mastercard charges for shareware authors.  Starting immediately,
  887.     MR/2 may be registered by "charging" it!  You can register online by
  888.     calling Greater Chicago Online BBS at (708) 895-4042.  Alternatively,
  889.     you can provide your charge card information to me directly on the
  890.     MR/2 registration form provided (register.doc).  There is a $2.00
  891.     handling fee associated with all charged registrations, making the
  892.     total charged registration cost $22.00 US for domestic orders.
  893.  
  894.     Shareware authors may get more information on the OS/2 Shareware
  895.     Author Support Program by calling the GREATER CHICAGO Online BBS at
  896.     the number above (leave a note to the sysop) or by Compuserve mail
  897.     at 70404,3277.  Fidonet netmail can be sent to Bill Cook at 1:115/895.
  898.  
  899.  
  900. KNOWN BUGS AND STUFF
  901. ====================
  902.  
  903. Mouse support is missing from some of the "inform user" screen.
  904.  
  905. The TEMPORARY directory MUST remain a subdirectory of the MR2 home dir.
  906.  
  907. You can't use "\" or "&" as part of any search text (since MR/2 uses them
  908. as delimiters).
  909.  
  910. You can't cancel a search until the first "hit" is displayed.  This is
  911. particularly irritating when soundex searching, since soundexing is
  912. noticably slower.
  913.  
  914. If you set "SkipReadMessages" to true, you cannot gain access to a
  915. conferences where all messages have previously been read.
  916.  
  917. Other frills that have not yet been addressed:  Bulk marking, carbon
  918. copies, twit filter, function key assigning. There are probably others.
  919. Feel free to bombard me with requests.
  920.  
  921. No long file name support.  Since QWK is a DOS thing, the only place I can
  922. see using it is for packet names (if the user renames it).  Any ideas?
  923.  
  924.  
  925. ************************************************************************
  926. NOTE:  READ.ME format has changed!  Go to the BEGINNING of the file for
  927. the most recent changes!!!
  928. ************************************************************************
  929.  
  930.